home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1998 August / PC Plus SuperCD 50a Issue 142 (CD142a) (August 1998).iso / trial / demon / TURNPIKE.1 / CLASSES.ZIP / JAVA / UTIL / Vector.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-04-14  |  3.2 KB  |  228 lines

  1. package java.util;
  2.  
  3. public class Vector implements Cloneable {
  4.    protected Object[] elementData;
  5.    protected int elementCount;
  6.    protected int capacityIncrement;
  7.  
  8.    public Vector(int var1, int var2) {
  9.       this.elementData = new Object[var1];
  10.       this.capacityIncrement = var2;
  11.    }
  12.  
  13.    public Vector(int var1) {
  14.       this(var1, 0);
  15.    }
  16.  
  17.    public Vector() {
  18.       this(10);
  19.    }
  20.  
  21.    public final synchronized void copyInto(Object[] var1) {
  22.       for(int var2 = this.elementCount; var2-- > 0; var1[var2] = this.elementData[var2]) {
  23.       }
  24.  
  25.    }
  26.  
  27.    public final synchronized void trimToSize() {
  28.       int var1 = this.elementData.length;
  29.       if (this.elementCount < var1) {
  30.          Object[] var2 = this.elementData;
  31.          this.elementData = new Object[this.elementCount];
  32.          System.arraycopy(var2, 0, this.elementData, 0, this.elementCount);
  33.       }
  34.  
  35.    }
  36.  
  37.    public final synchronized void ensureCapacity(int var1) {
  38.       int var2 = this.elementData.length;
  39.       if (var1 > var2) {
  40.          Object[] var3 = this.elementData;
  41.          int var4 = this.capacityIncrement > 0 ? var2 + this.capacityIncrement : var2 * 2;
  42.          if (var4 < var1) {
  43.             var4 = var1;
  44.          }
  45.  
  46.          this.elementData = new Object[var4];
  47.          System.arraycopy(var3, 0, this.elementData, 0, this.elementCount);
  48.       }
  49.  
  50.    }
  51.  
  52.    public final synchronized void setSize(int var1) {
  53.       if (var1 > this.elementCount) {
  54.          this.ensureCapacity(var1);
  55.       } else {
  56.          for(int var2 = var1; var2 < this.elementCount; ++var2) {
  57.             this.elementData[var2] = null;
  58.          }
  59.       }
  60.  
  61.       this.elementCount = var1;
  62.    }
  63.  
  64.    public final int capacity() {
  65.       return this.elementData.length;
  66.    }
  67.  
  68.    public final int size() {
  69.       return this.elementCount;
  70.    }
  71.  
  72.    public final boolean isEmpty() {
  73.       return this.elementCount == 0;
  74.    }
  75.  
  76.    public final synchronized Enumeration elements() {
  77.       return new VectorEnumerator(this);
  78.    }
  79.  
  80.    public final boolean contains(Object var1) {
  81.       return this.indexOf(var1, 0) >= 0;
  82.    }
  83.  
  84.    public final int indexOf(Object var1) {
  85.       return this.indexOf(var1, 0);
  86.    }
  87.  
  88.    public final synchronized int indexOf(Object var1, int var2) {
  89.       for(int var3 = var2; var3 < this.elementCount; ++var3) {
  90.          if (var1.equals(this.elementData[var3])) {
  91.             return var3;
  92.          }
  93.       }
  94.  
  95.       return -1;
  96.    }
  97.  
  98.    public final int lastIndexOf(Object var1) {
  99.       return this.lastIndexOf(var1, this.elementCount);
  100.    }
  101.  
  102.    public final synchronized int lastIndexOf(Object var1, int var2) {
  103.       int var3 = var2;
  104.  
  105.       do {
  106.          --var3;
  107.          if (var3 < 0) {
  108.             return -1;
  109.          }
  110.       } while(!var1.equals(this.elementData[var3]));
  111.  
  112.       return var3;
  113.    }
  114.  
  115.    public final synchronized Object elementAt(int var1) {
  116.       if (var1 >= this.elementCount) {
  117.          throw new ArrayIndexOutOfBoundsException(var1 + " >= " + this.elementCount);
  118.       } else {
  119.          try {
  120.             return this.elementData[var1];
  121.          } catch (ArrayIndexOutOfBoundsException var2) {
  122.             throw new ArrayIndexOutOfBoundsException(var1 + " < 0");
  123.          }
  124.       }
  125.    }
  126.  
  127.    public final synchronized Object firstElement() {
  128.       if (this.elementCount == 0) {
  129.          throw new NoSuchElementException();
  130.       } else {
  131.          return this.elementData[0];
  132.       }
  133.    }
  134.  
  135.    public final synchronized Object lastElement() {
  136.       if (this.elementCount == 0) {
  137.          throw new NoSuchElementException();
  138.       } else {
  139.          return this.elementData[this.elementCount - 1];
  140.       }
  141.    }
  142.  
  143.    public final synchronized void setElementAt(Object var1, int var2) {
  144.       if (var2 >= this.elementCount) {
  145.          throw new ArrayIndexOutOfBoundsException(var2 + " >= " + this.elementCount);
  146.       } else {
  147.          this.elementData[var2] = var1;
  148.       }
  149.    }
  150.  
  151.    public final synchronized void removeElementAt(int var1) {
  152.       if (var1 >= this.elementCount) {
  153.          throw new ArrayIndexOutOfBoundsException(var1 + " >= " + this.elementCount);
  154.       } else {
  155.          int var2 = this.elementCount - var1 - 1;
  156.          if (var2 > 0) {
  157.             System.arraycopy(this.elementData, var1 + 1, this.elementData, var1, var2);
  158.          }
  159.  
  160.          --this.elementCount;
  161.          this.elementData[this.elementCount] = null;
  162.       }
  163.    }
  164.  
  165.    public final synchronized void insertElementAt(Object var1, int var2) {
  166.       if (var2 >= this.elementCount + 1) {
  167.          throw new ArrayIndexOutOfBoundsException(var2 + " >= " + this.elementCount + 1);
  168.       } else {
  169.          this.ensureCapacity(this.elementCount + 1);
  170.          System.arraycopy(this.elementData, var2, this.elementData, var2 + 1, this.elementCount - var2);
  171.          this.elementData[var2] = var1;
  172.          ++this.elementCount;
  173.       }
  174.    }
  175.  
  176.    public final synchronized void addElement(Object var1) {
  177.       this.ensureCapacity(this.elementCount + 1);
  178.       this.elementData[this.elementCount++] = var1;
  179.    }
  180.  
  181.    public final synchronized boolean removeElement(Object var1) {
  182.       int var2 = this.indexOf(var1, 0);
  183.       if (var2 >= 0) {
  184.          this.removeElementAt(var2);
  185.          return true;
  186.       } else {
  187.          return false;
  188.       }
  189.    }
  190.  
  191.    public final synchronized void removeAllElements() {
  192.       for(int var1 = 0; var1 < this.elementCount; ++var1) {
  193.          this.elementData[var1] = null;
  194.       }
  195.  
  196.       this.elementCount = 0;
  197.    }
  198.  
  199.    public synchronized Object clone() {
  200.       try {
  201.          Vector var1 = (Vector)super.clone();
  202.          var1.elementData = new Object[this.elementCount];
  203.          System.arraycopy(this.elementData, 0, var1.elementData, 0, this.elementCount);
  204.          return var1;
  205.       } catch (CloneNotSupportedException var2) {
  206.          throw new InternalError();
  207.       }
  208.    }
  209.  
  210.    public final synchronized String toString() {
  211.       int var1 = this.elementCount - 1;
  212.       StringBuffer var2 = new StringBuffer();
  213.       Enumeration var3 = this.elements();
  214.       var2.append("[");
  215.  
  216.       for(int var4 = 0; var4 <= var1; ++var4) {
  217.          String var5 = var3.nextElement().toString();
  218.          var2.append(var5);
  219.          if (var4 < var1) {
  220.             var2.append(", ");
  221.          }
  222.       }
  223.  
  224.       var2.append("]");
  225.       return new String(var2);
  226.    }
  227. }
  228.